home *** CD-ROM | disk | FTP | other *** search
/ Internet Surfer 2.0 / Internet Surfer 2.0 (Wayzata Technology) (1996).iso / pc / text / mac / faqs.112 < prev    next >
Encoding:
Text File  |  1996-02-12  |  27.8 KB  |  684 lines

  1. Frequently Asked Questions (FAQS);faqs.112
  2.  
  3.  
  4.  
  5. One goal is to offer discussion groups for students who learn by
  6. tossing ideas around and discussing them, asking each other and
  7. helping each other out.
  8.  
  9. One possible goal is to create and archive learning material
  10. (tutorials, exercies) itself.
  11.  
  12. One possible goal is to offer possibilites for tutors and students to
  13. find each other for email teaching.
  14.  
  15.  
  16. 4. Administration
  17.  
  18. There are decisions to be made concerning the process of creation of
  19. newsgroups, possible moderation of them, how to divide topics and
  20. disciplines, how to handle possible (probable) flame wars and other
  21. possibly destructive phenomena, and so on.  Some kind of a
  22. decision-making process will need to be established for these.  To be
  23. compatible with the goals and principles of UU, some kind of a
  24. groupware decision-making support system would be useful to help the
  25. process.
  26.  
  27. To better classify information exchange and to provide feedback for
  28. participants, some kind of accreditation / peer review system is
  29. desirable.  Here again groupware mechanisms and tools would be useful
  30. for being compatible with the openness principles, dividing work and
  31. avoiding single point of failure.
  32.  
  33.  
  34. 5. Copyright on the articles and learning material
  35.  
  36. According to the Berne convention, the author has the copyright on his
  37. or her work.  If a base of learning material is created, copyright is
  38. a relevant issue - should a "Usenet University" trust be created which
  39. holds the copyright, should the authors have the copyright with some
  40. kind of a GNU-like copyright, should the authors have the copyright
  41. and give other only the right to copy the documents in the UU context,
  42. should the created documents be put in the public domain.  There are
  43. lots of possibilities and at least if the aim is to create a big base
  44. of material some guidelines need to be established.
  45.  
  46.  
  47. 6. Technology
  48.  
  49. Technology which people os Usenet have varies widely.  Many have
  50. text-only 80 x 24 character displays, while many have workstations
  51. with big graphics screens with perhaps also color and sound, and
  52. software for multi-media email.  This needs to be addressed - for
  53. topics like learning to speak languages, for example sound can be an
  54. essential part and transmitting sounds on UU would be very beneficial.
  55.  
  56. Besides the capabilites of the media, access to on-line resources such
  57. as ftp servers, archie, www, wais servers, newsgroup archives and
  58. other services on the Internet varies.  Some only have a Usenet feed
  59. with little possibility to access on-line services, some have very
  60. fast lines to the rest of the world and some are in between.
  61.  
  62. These differences probably will divide discussions a bit - for
  63. learning of languages for example it could be useful to have a
  64. separate group for those who have sound capabilities, to avoid
  65. frustration on the part of those with no such access.
  66.  
  67.  
  68. 7. Disciplines or division of topics
  69.  
  70. There are several possibilities for how to divide topics handled in
  71. UU.  There is the discipline division of the scientific community,
  72. there are various classifications used by libraries, there is the
  73. Usenet newsgroup division, etc.  It probably is not wise to use
  74. strictly just any one of these divisions, but it would seem useful to
  75. borrow from many of them.
  76.  
  77. This is an issue which needs discussing.
  78.  
  79.  
  80. 8. Later steps
  81.  
  82. To get things rolling with respect to full-fledged course on UU, we
  83. should discuss suggestions for topics you think would be good as
  84. "prototype topics", with suggestions for group names.  These topics
  85. should be ones for which there are enough people interested on to
  86. reach "critical mass" to develop the course material.  One possibility
  87. would be to take a topic for which there already is reference material
  88. for - some newsgroups on Usenet have excellent FAQs with literature
  89. references, answers to many questions, hints from old-timers etc.
  90. which could offer a good start for a tutorial and/or a course run by
  91. teachers on the topic.
  92.  
  93. It probably will be desirable to have a few groups for each topic.  An
  94. example division would be to have one group for generic discussions
  95. and one for material references / exercises / other
  96. "carefully-written" articles standing on their own.  Alternatively a
  97. system of keywords in the Subject field could be adopted (like used in
  98. sci.virtual-worlds) to mark the type of each article, but for
  99. unmoderated groups it would be hard to maintain the practice.
  100.  
  101.  
  102. 9. What to do to keep the UU ball rolling and growing?
  103.  
  104. For all who are willing to support the idea of UU and possible
  105. similar community projects / resources (like a community effort
  106. encyclopaedia, dictionaries between different languages), the thing to
  107. do is to _contribute_ something - just a simple thing like drafting a
  108. two dozen-item itemized list of subtopics on a thing you know
  109. something about and which you think could be turned into a document
  110. for others to read and help them learn.  Then others could fill in
  111. things on the document, and with each person contributing just a
  112. relatively small amount of work, something just might come out of it.
  113. Another thing to do would be to point out the UU idea and UU groups to
  114. people on other Usenet groups on topics you're interested in - many
  115. Usenet groups have FAQ's which are good information resources on the
  116. topic field, and the UU groups could be used as a media to develop
  117. those FAQ's.
  118. ----------------------------------------
  119. Current newsgroups
  120.  
  121. These groups (all but alt.uu.future created 22 July 1992) are part
  122. of the Usenet University.  For futher information on UU, see directory
  123. pub/doc/uu on the machine nic.funet.fi.
  124.  
  125. A "material" group means that the group exists for postings of
  126. course material, announcements, pointers to material and resources,
  127. essays, etc. relevant to the "department" of the group and/or the
  128. topic.  This group is for one-time articles / posts - discussions are
  129. _not_ suitable for this newsgroup but should instead be held in a
  130. corresponding .misc group.  Followups should be directed and posted
  131. there.  On some UU groups (where there is a volunteer teacher /
  132. teachers) the material will be mostly for course-like work, on others
  133. for self-study, on others the main info will be something else.  The
  134. conventions will form as time passes and while there are none, a wide
  135. range of relevant postings will appear.  Later, different styles of
  136. learning will perhaps spin off different newsgroups.
  137.  
  138. A "misc" group exists for discussions on learning, followups on the
  139. "material" group articles, and other discussion relevant to the
  140. department or topic.
  141.  
  142. For all departments / topics, there are as of yet no "material" groups
  143. but instead only .misc groups - in that case, articles fitting in the
  144. material group should be posted with "MATERIAL" as the first word in
  145. the Subject: field of the article.
  146.  
  147. There are two ftp archives of the Usenet University newsgroups - one
  148. on nic.funet.fi, directory pub/archive and another at
  149. ftp.coe.montana.edu (192.31.215.240) in pub/uu/...  For now at least
  150. the archives don't have articles from the epoch of UU but instead from
  151. a later point in time.
  152.  
  153. The following groups have been created 1992, July 22nd:
  154.  
  155. alt.uu.lang.misc    Language department of Usenet University
  156.  
  157. This is a group for the "language department" of UU.  This is the
  158. "main group" for learning languages, linguistics etc. - later there
  159. will be more specific groups for different topic in the field.
  160.  
  161. alt.uu.math.misc    Math department of Usenet University
  162.  
  163. This is a group for the "math department" of UU.  This is the
  164. "main group" for learning mathematics - later there
  165. will be more specific groups for different topic in the field.
  166.  
  167. alt.uu.comp.misc    Computer department of Usenet University
  168.  
  169. This is a group for the "computer department" of UU.  This is the
  170. "main group" for learning things to do with computers - later there
  171. will be more specific groups for different topic in the field.  Both
  172. "computing science" and "using computers as tools" topics are suitable
  173. under this department, at first at least.  Some of the computing
  174. science topics perhaps will fit better under math - the choice is left
  175. to each participant.
  176.  
  177. alt.uu.lang.esperanto.misc    Study of Esperanto in Usenet University
  178.  
  179. This is a group for learning Esperanto.  This is the
  180. "main group" for learning Esperanto - later there
  181. will be more specific groups for different topics in the field.
  182.  
  183. alt.uu.misc.misc    Misc. department of Usenet University
  184.  
  185. This is a group for learning about topics not suitable for other
  186. groups of UU.  This is the "catch-all" group, "misc department" of UU.
  187.  
  188. alt.uu.virtual-worlds.misc    Study of virtual worlds in Usenet University
  189.  
  190. This is a group for learning about virtual worlds or virtual reality.
  191.  
  192. alt.uu.tools        Tools for Usenet University and education
  193.  
  194. This is a group for discussing tools useful in UU and self-education /
  195. distance education, what tools are recommended to be used with UU,
  196. what tools are helpful, where to get such tools, etc.  Examples of the
  197. tools include machinery for viewing languages other than English on
  198. computers, possible UU "courseware" (for studying UU course pacakges) etc.
  199.  
  200. alt.uu.announce        Announcements of Usenet University
  201.  
  202. This is a group for announcements of UU.
  203.  
  204. alt.uu.future        Planning the future of Usenet University
  205.  
  206. This functions as a group to discuss the future of UU, and currently
  207. also as a "misc" group in which generic meta-discussions of UU take
  208. place.  The first UU group, created in June 1992.
  209.  
  210. ----------------------------------------
  211.  
  212. Feel free to use the UU groups!
  213.  
  214. //Jyrki
  215. Xref: bloom-picayune.mit.edu comp.unix.sysv386:29504 comp.unix.bsd:9884 comp.os.mach:2806 news.answers:4460
  216. Path: bloom-picayune.mit.edu!enterpoop.mit.edu!spool.mu.edu!wupost!darwin.sura.net!jvnc.net!netnews.upenn.edu!dsinc!bagate!cbmvax!snark!esr
  217. From: esr@snark.thyrsus.com (Eric S. Raymond)
  218. Newsgroups: comp.unix.sysv386,comp.unix.bsd,comp.os.mach,news.answers
  219. Subject: Known Bugs in the USL UNIX distribution
  220. Message-ID: <1jjQl4#37x4q01WY07X85d4Xb1vMd0g=esr@snark.thyrsus.com>
  221. Date: 7 Dec 92 19:48:45 GMT
  222. Expires: 20 Feb 93 00:00:00 GMT
  223. Sender: esr@snark.thyrsus.com (Eric S. Raymond)
  224. Followup-To: comp.unix.sysv386
  225. Lines: 1158
  226. Approved: news-answers-request@MIT.Edu
  227.  
  228. Archive-name: usl-bugs
  229. Last-update: Mon Dec  7 14:40:22 1992
  230. Version: 9.0
  231.  
  232. What's new in this issue:
  233.    * Fix availability for ndbm.
  234.  
  235. (In the table below, bugs new this issue or old bugs for which information has
  236. been added are marked with a * at the left margin)
  237.  
  238. 0. Table of Contents
  239. I. Introduction
  240. II. General Bugs
  241.     1. Dropout problems with tty devices
  242.     2. Suid programs dump core when signalled
  243.     3. DMAs on large ISA machines may fail
  244.     4. There is a cylinder limit on disk size
  245.     5. shmat(2) vs. vfork(2)
  246.     6. X performance problem
  247.     7. FIONREAD fails on regular files
  248.     8. A security hole in login
  249.     9. COFF problems with long filenames
  250.     10. Flakeouts in the Wangtek device driver
  251.     11. A kernel declaration bug
  252.     12. fread(3) does the wrong thing on pipes and FIFOs
  253.     13. Process accounting is broken
  254.     14. tar(1) foos up in the presence of symbolic links
  255.     15. Symbolic links can interfere with shellscript execution
  256.     16. Piping a csh builtin causes the shell to hang.
  257.     17. Quick port setup option in sysadm is broken
  258.     18. COFF binaries linked with curses(3) and shared libc hang
  259.     19. shl hangs, sxt devices bad
  260.     20. num-lock prevents mouse from working properly
  261.     21. adjtime() doesn't work
  262.     22. ttymon drops DTR
  263.     23. cron mail doesn't go through aliasing
  264.     24. fragility in xterm
  265.     25. csh lossage due to bad optimization
  266.     26. Bug in cp(1)
  267.     27. tbl -me doesn't work
  268.     28. who -r fragility leads to boot-time problems
  269.     29. at(1) breaks here-documents in shell scripts
  270. III. Networking and File-Sharing Bugs
  271.     1. NFS locking is unusably slow
  272.     2. UFS file system problems
  273.     3. Byte-order problem with NFS when accessing Sun disks
  274.     4. Under weird circumstances, lseek on UFS may cause corruption
  275.     5. FTP problems
  276.     6. A bug in the WD80x3 support
  277. IV. SCSI Support Problems
  278.     1. sar is confused by SCSI
  279.     2. A configuration problem
  280.     3. Synchronous SCSI hang problem
  281.     4. ps chokes on commands that do SCSI I/O
  282.     5. Transfer speed problems with Adaptec 1542B on 486s
  283. V. Development Tools Problems
  284.     1. General UCB library brokenness
  285.     2. USL emulation of BSD signals doesn't work
  286.     3. Possible string library problems
  287. *   4. USL's ndbm support is broken.
  288.     5. An include file is missing
  289.     6. sscanf(3) has a potential bug
  290.     7. Compiler problems
  291. VI. The FUBYTE Problem
  292. VII. Destiny and Dell
  293.  
  294. I. Introduction
  295.  
  296. This posting lists known bugs in System V Release 4 implementations, and known
  297. fixes applied by various porting houses (there's also random bits of
  298. information about SCO UNIX here and there).  It was formerly part of the
  299. 386-buyers-faq issues 1.0 through 4.0, and is still best read in conjunction
  300. with the pc-unix/software FAQ descended from that posting.
  301.  
  302. This document is maintained and periodically updated as a service to the net by
  303. Eric S.  Raymond <esr@snark.thyrsus.com>, who began it for the very best
  304. self-interested reason that he was in the market and didn't believe in plonking
  305. down several grand without doing his homework first (no, I don't get paid for
  306. this, though I have had a bunch of free software and hardware dumped on me as a
  307. result of it!).  Corrections, updates, and all pertinent information are
  308. welcomed at that address.
  309.  
  310. This posting is periodically broadcast to the USENET group comp.unix.sysv386
  311. and to a list of vendor addresses.  If you are a vendor representative, please
  312. check to make sure the information on your company is current and correct.  If
  313. it is not, please email me a correction ASAP.  If you are a knowledgeable user
  314. of any of these products, please send me a precis of your experiences for the
  315. improvement of future issues.
  316.  
  317. The bug descriptions often include indications of fixes by the various porting
  318. houses to their current releases.  These are:
  319.  
  320. Consensys UNIX Version 1.3            abbreviated as "Cons" below
  321. Dell UNIX Issue 2.2                abbreviated as "Dell" below
  322. Esix Revision A                    abbreviated as "Esix" below
  323. Micro Station Technology SVr4 UNIX        abbreviated as "MST" below
  324. Microport System V Release 4.0 version 4    abbreviated as "uPort" below
  325. UHC Version 3.6                    abbreviated as "UHC" below
  326. SCO Open DeskTop 1.1                abbreviated as "SCO" below
  327.  
  328. II. General Bugs
  329.  
  330. 1. Dropout problems with tty devices
  331.    The most serious problem anyone has reported is that the USL asy driver is
  332. flaky and occasionally drops characters at above 4800 baud.
  333.    Microport, Dell, Esix, and UHC say that they believe they've fixed this.
  334. However, Dell, at least, was mistaken when they first made this claim; a more
  335. detailed description of the problem is given below.  I have been assured that
  336. this is on the fix list for the next Dell release.
  337.    Bela Lubkin at SCO comments "386 interrupt latency vs. unbuffered UARTs.
  338. This is a tough problem.  Nobody's driver should drop characters with a
  339. turned-on 16550.  It's not so easy with a 16450.  Anyone with 16450s or lower
  340. should be able to solve their problems by dropping in a 16550."
  341.  
  342. 2. Suid programs dump core when signalled
  343.    Mark Snitily of SGCS says that under many SVr4s, signalling a
  344. process that is running suid root will cause it to core-dump.  He says
  345. Dell and MST have fixed this, and SCO doesn't suffer from this.
  346.  
  347. 3. DMAs on large ISA machines may fail
  348.    On ISA machines with more that 16MB of RAM, SVr4 may try to do DMA
  349. from outside the bus's address space, causing serious problems.  UNIX ought
  350. to do an in-memory copy to within the low 16MB but the USL base code doesn't.
  351.    Dell says they've fixed this, and that's been confirmed by a user.
  352.    UHC says they've fixed this; they add that the special buffer-allocation
  353. logic to handle the problem can be turned off with a tunable kernel parameter
  354. if you've got less than 16M.
  355.    Microport says they've fixed this in their new 4.1 release, shipping early
  356. March.
  357.    Esix offers a patch to correct this problem.
  358.    SCO used to have a similar bug but fixed it long ago.
  359.    John Sully <jms@mport.com> writes: "This was due to a bug in pre version 4
  360. dma code.  The USL code has always at least attempted to do a copy from low
  361. memory to high memory on systems with more than 16Mb of RAM.  By the way UHC is
  362. wrong; the buffer allocation code only comes into play if you have more than
  363. 16Mb of memory.  You can turn it off if you have a machine (ie. an EISA bus)
  364. which will allow you to do DMA above 16Mb.  You *must* have this tunable
  365. (MAXDMAPAGE) turned on if you are using *ISA* bus masters in a system with more
  366. than 16Mb of ram.  Unfortunately doing this will affect all drivers which do
  367. dma as there is no good way to do this on a per-driver basis."
  368.  
  369. 4. There is a cylinder limit on disk size
  370.    Stock USL code is limited to 1,024 cylinders per Winchester, which
  371. might cause problems with some disk drives.
  372.    Microport, Dell, Esix, MST, and UHC have fixed this.
  373.    Bela Lubkin says "SCO's boot filesystem must lie below 1024 cylinder mark;
  374. anything else can be anywhere.  This is more-or-less a limitation of the BIOS
  375. interface that the bootstrap loader must use.  Could be circumvented by going
  376. directly to controller hardware in the bootstrap loader, but that would be
  377. horrendously complex with all the controllers & host adapters to be supported."
  378. This limit probably applies to all other UNIXes as well.
  379.  
  380. 5. shmat(2) vs. vfork(2)
  381.    The shmat(2) call is known to interact bady with vfork(2).  Specifically,
  382. if you attach a shared-memory segment, vfork(), and then the child releases
  383. the segment, the parent loses it too!  Workaround; use fork(2).
  384.    UHC and Microport both suspect that they still have this bug and opine that
  385. anyone who uses vfork deserves to lose.  Dell has no plans to fix it.
  386.  
  387.    John Sully <jms@mport.com> writes: "This is not a bug.  It is completely
  388. consistent with the semantics of a change to the address space of the child.
  389. Think about it: any change to the address space of a child process created by
  390. vfork(2) is reflected in the parent since the child is actually executing in
  391. the parent's address space.  Therefore if the child changes the address space
  392. (in this case by releasing the shared memory segment) what should happen?
  393. Right, the parent should have the same change happen.  And what does happen?
  394. The segment is released in the parent.  One can argue about the braindead
  395. semantics of vfork(2) all day, but the fact remains that this is exactly what
  396. one would expect to happen.  To quote from the manual page:
  397.  
  398.      [...] vfork differs  from fork  in
  399.      that the    child  borrows    the parent's *memory* and thread of
  400.      control until a call to execve or an exit (either by a  call
  401.      to     exit  or  abnormally.) [ emphasis added ]
  402.  
  403. and later:
  404.  
  405.      It does not work, however, to return while
  406.      running in    the child's  context  from  the     procedure  which
  407.      called vfork since    the eventual return from vfork would then
  408.      return to a no longer existent  stack  frame.
  409.  
  410. Please note that the entire address space of the parent is used by
  411. the child created by vfork(2).  The manual page also points out
  412. several other caveats involved in doing anything to the parent's
  413. address space except successfully calling an exec family function or
  414. _exit (note it specifically says *not* to call exit(2)).  I do not believe
  415. that having a shared memory segment disappear from the parent's address
  416. space is out of line after reading the man page for vfork(2).
  417.  
  418. It is interesting to note that Sun after implementing its new VM system in
  419. SunOS 4.0 initially had no plans to support vfork, since they felt that the COW
  420. semantics of the new fork would provide the necessary efficiency gain.  Indeed
  421. they found that most programs which used vfork worked just fine by doing
  422. -Dvfork=fork.  All that is, except for a certain popular command interpreter
  423. [ed: can you say C shell?].  So we are stuck with the legacy of this braindead
  424. system call.
  425.  
  426. BTW, Microport has no plans to fix this :-)."
  427.  
  428. 6. X performance problem
  429.    Stock X11R4 and R5 (at least prior to 1.2E) is said to hog the
  430. processor if you use the LOCALCONNECT option.  Jan Brittenson
  431. <bson@gnu.ai.mit.edu> posted the following workaround:
  432.  
  433.    I don't know what causes the standard X server to hog the CPU, but
  434. it can be avoided. Use the following program instead of xinit. Compile
  435. it with `$CC -O -o xserv xserv.c -lX11' where CC is either
  436. /usr/ccs/bin/cc or gcc. Set DISPLAY and XINITRC and run `xserv' from
  437. your home directory. This is just a q&d hack, and not really a
  438. substitute for xinit -- but it works.
  439.  
  440. /* xserv.c -- start X server
  441.  
  442.    Start X server. Similar to xinit, but intended to
  443.    circumvent the X386 CPU Hog Mode
  444.  
  445.    Jan Brittenson, June 2 1992  05:15 am */
  446.  
  447. #include <stdio.h>
  448. #include <sys/types.h>
  449. #include <signal.h>
  450. #include <setjmp.h>
  451. #include <unistd.h>
  452. #include <libgen.h>
  453.  
  454. #include <X11/Xlib.h>
  455. #include <X11/Xos.h>
  456. #include <X11/Xmu/SysUtil.h>
  457.  
  458.  
  459. extern int errno;
  460.  
  461.  
  462. /* Start X server. Fork-exec server, passing the DISPLAY environment
  463.    variable. Wait for server to get up and running (at which point it
  464.    passes back a SIGUSR1), at which point the user xinitrc file is run. */
  465.  
  466. #define DEFAULT_XPATH "/usr/X386/bin/X386"
  467. #define XINITRC ".xinitrc"
  468. #define DEFAULT_XCOMMAND "xterm -g +1+1 -n login -display :0"
  469.  
  470. extern void *malloc (), free ();
  471. extern char *basename (), *getenv (), *strcpy ();
  472.  
  473. /* X stuff */
  474. Display *top_display;
  475.  
  476.  
  477. /* This is supposed to be in libgen.a... */
  478. static char
  479. *basename (s0)
  480.   char *s0;
  481. {
  482.   register char *s1;
  483.  
  484.   for (s1 = s0 + strlen (s0) - 1;
  485.        s1 > s0 && *s1 != '/'; s1--);
  486.  
  487.   if (*s1 == '/')
  488.     return s1+1;
  489.  
  490.   return s1;
  491. }
  492.  
  493. jmp_buf sigusr1_frame;
  494.  
  495. static void
  496. caught_sigusr1 (int dummy) { longjmp (sigusr1_frame, !0); }
  497.  
  498.  
  499. static char
  500. *dispname (s0)
  501.   char *s0;
  502. {
  503.   register char *s1;
  504.  
  505.   for (s1 = s0 + strlen (s0) - 1;
  506.        s1 > s0 && *s1 != ':'; s1--);
  507.  
  508.   return s1;
  509. }
  510.  
  511.  
  512. /* No arguments */
  513. int
  514. main (argc, argv)
  515. int argc;
  516. char **argv;
  517. {
  518.   char *xserver_file, *xinitrc_file, *home_path, *display, *display_X_arg;
  519.   int xserver_pid, orgmask;
  520.  
  521.  
  522.   /* Not that it really matters, just to avoid being used as a direct
  523.      replacement for xinit. */
  524.  
  525.   if (argc != 1)
  526.     {
  527.       fprintf (stderr, "usage: %s\n", basename (*argv));
  528.       exit (1);
  529.     }
  530.  
  531.  
  532.   /* Resolve xinitrc path. This is done before the server is
  533.      started. */
  534.  
  535.   if (!(home_path = getenv ("HOME")))
  536.     home_path = "/etc";
  537.  
  538.   if (!(xinitrc_file = getenv ("XINITRC")))
  539.     {
  540.       xinitrc_file = malloc (strlen (home_path) + 1 + strlen (XINITRC) + 1);
  541.       sprintf (xinitrc_file, "%s/%s", home_path, xinitrc_file);
  542.     }
  543.   else
  544.     xinitrc_file = strdup (xinitrc_file);
  545.  
  546.  
  547.   /* Resolve display */
  548.   if (!(display = getenv ("DISPLAY")))
  549.     display = display_X_arg = ":0.0";
  550.   else
  551.     display_X_arg = dispname (display);
  552.  
  553.  
  554.   /* Tell server to notify us when up and running */
  555.   signal (SIGUSR1, SIG_IGN);
  556.   orgmask = sigblock (sigmask (SIGUSR1));
  557.  
  558.   /* Start server */
  559.   if (!(xserver_pid = vfork ()))
  560.     {
  561.       xserver_file = DEFAULT_XPATH;
  562.  
  563.       execl (xserver_file, xserver_file, display_X_arg, NULL);
  564.  
  565.       fprintf (stderr, "%s: can't exec %s (errno = %d) -- start-up aborted\n",
  566.                basename (*argv), xserver_file, errno);
  567.       exit (1);
  568.     }
  569.  
  570.   if (xserver_pid < 0)
  571.     {
  572.       fprintf (stderr, "%s: can't fork (errno = %d) -- start-up aborted\n",
  573.                basename (*argv), errno);
  574.  
  575.       exit (1);
  576.     }
  577.  
  578.   /* Await signal from server */
  579. #if 0
  580.   /* Why the #@$*! doesn't this work?! */
  581.   sigsetmask (orgmask);
  582.   alarm (20);
  583.   sigpause (sigmask (SIGUSR1) | sigmask (SIGALRM));
  584. #else
  585.   sleep (5);
  586. #endif
  587.  
  588.   /* Open display */
  589.   if (!(top_display = XOpenDisplay (display)))
  590.     {
  591.       fprintf (stderr, "%s: unable to open display '%s' -- start-up aborted\n",
  592.                basename (*argv), display);
  593.       exit (1);
  594.     }
  595.  
  596.   /* Execute xinitrc file */
  597.   if (system (xinitrc_file) < 0)
  598.     system (DEFAULT_XCOMMAND);
  599.  
  600.   /* Close display */
  601.   XCloseDisplay (top_display);
  602.  
  603.   /* Terminate server */
  604.   kill (xserver_pid, SIGTERM);
  605.  
  606.   /* Finished */
  607.   free (xinitrc_file);
  608. }
  609.  
  610. 7. FIONREAD fails on regular files
  611.   Christoph Badura <bad@generics.ka.sub.org> reports that the FIONREAD ioctl()
  612. fails on regular (disk) files.  He has sent USL a one-line kernel fix.
  613.  
  614. 8. A security hole in login
  615.    David Wexelblat <dwex@mtgzfs3.att.com> reports: "There is a HUGE security
  616. hole in /bin/login in all USL derived SVR4s before 4.0.4.  Refer to CERT
  617. advisory CA-91:08, dated 5/23/91.  This is known to be present in AT&T SVR4
  618. 2.1, and Microport SVR4 3.1.  ESIX claims to have fixed it, Microport reports
  619. that it is fixed in 4.1.  I won't give any more details unless necessary.
  620. Suffice to say that this bug allows any non-privileged user on an SVR4 system
  621. to get read-write access to any file on the system."
  622.  
  623. 9. COFF problems with long filenames
  624.    A source at Dell urges: "Our SVR4v2 did some stuff that USL didn't get
  625. around to until SVR4v4.  Try Dell UNIX 2.1 with a COFF program on a large UFS
  626. filesystem in a directory with long names.  Runs on Dell UNIX.  Breaks on
  627. others."  I don't have more definite info yet.
  628.  
  629. 10. Flakeouts in the Wangtek device driver
  630.    Dell reports that USL's Wangtek device driver is seriously flaky.  "How'd
  631. you like a multi volume backup where the second and subsequent volumes don't
  632. follow on from the previous volumes?"  UHC confirms this and is actively
  633. working on the problem.
  634.    An anonymous SCOer says "The QIC02 tape controller `standard' is seriously
  635. flaky.  Our driver's in pretty good shape but nobody will ever have a truly
  636. solid driver that supports every QIC02 controller you can find."
  637.    Gordon Ross <gwr@mc.com> reports: "Actually, the SCSI tape target driver
  638. `st01' has a similar problem at version 4.0.3 which I corrected while I worked
  639. on the SVR4 code.  The correction was provided to the support group at USL.
  640. The actual problem was that the SCSI tape would return a `check status'
  641. completion code which was just trying to inform the driver of the arrival
  642. of the `logical end of media' indication but the driver was treating it
  643. as an error.  The tape drive had in fact written the data, but the driver
  644. incorrectly assumed that the "check status" return meant that it failed.
  645. The result of this is that when you write into the end of the tape, you
  646. can read back one more "chunk" than yu wrote.  Of course, cpio does not
  647. like this at all when doing multi-volume backups..."
  648.  
  649. 11. A kernel declaration bug
  650.     A botch in USL's /etc/conf/pack.d/kernel/space.c (which is present in
  651. Consensys 1.3, Dell 2.1, Esix 4.0.3A, Microport 4.0.3 and 4.0.4 and may also be
  652. present in other SVr4s) can step on the linesw[] table.  The problem is that
  653. the domain name array initialization is wrong and too short; thus, when it's
  654. set, data past the end of the array can be stomped.  To fix this, find the
  655. following near line 247:
  656.  
  657.     char srpc_domain[] = SRPC_DOMAIN;
  658.  
  659. and change it to
  660.  
  661.     char srpc_domain[SYS_NMLN] = SRPC_DOMAIN;
  662.  
  663. then rebuild the kernel.
  664.    Microport officially knows about this bug and plans to fix it in a
  665. near-future update release.  It has been fixed in Dell 2.2.
  666.  
  667. 12. fread(3) does the wrong thing on pipes and FIFOs
  668.    Ed Hall <edhall@rand.org> writes: "Unlike the raw read() system call,
  669. fread() is supposed to be able to make several partial reads to satisfy the
  670. data requested by its arguments.  The exceptions are an EOF or an error on the
  671. stream.  This characteristic is quite useful when moving data through pipes or
  672. over network connections, since partial reads are quite common in these cases.
  673. Well, the version of fread() in ESIX 4.0.3 (and likely other Sys5R4's) only
  674. does a single physical read, and if it only satifies part of the requested
  675. number of bytes, that's all you get.  This can sting you even if you carefully
  676. check the value returned by fread(), since the value returned is rounded down
  677. to the number of complete "nitems" read, although your position in the stream
  678. can be up to size-1 bytes beyond that point.  Neither ferror() nor feof()
  679. indicate anything is wrong when this happens."
  680.    This bug (which is also present in 4.0.4) is serious and nasty and should
  681. be high on every porting house's list to fix.  It appears to be peculiar to
  682. USL 4.0.3 and 4.0.4; 4.0.2 does *not* have it, nor does SCO.
  683.    A USL source claims it has been fixed in 4.1.
  684.